package Helper;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class TimeConverter implements Runnable {
private int sleepingTime;
private CheckerClass checker;
private boolean valid;
private int hour;
private int minute;
private int second;
private long start;
private long stop;
private JLabel timeLabel;
public TimeConverter(String startingTime, String finishTime, JLabel timeLabel, String sleep) {
checker = new CheckerClass();
this.timeLabel = timeLabel;
valid = true;
sleepingTime = Integer.parseInt(sleep);
if (!(checker.checkTimeFormat(startingTime))) {
valid = false;
JOptionPane.showMessageDialog(null, "Invalid time format for starting time !", "ERROR time format",
JOptionPane.ERROR_MESSAGE);
}
if (!(checker.checkTimeFormat(finishTime))) {
valid = false;
JOptionPane.showMessageDialog(null, "Invalid time format for finish time !", "ERROR time format",
JOptionPane.ERROR_MESSAGE);
}
if (valid) {
hour = Integer.parseInt(finishTime.substring(0, 2));
minute = Integer.parseInt(finishTime.substring(3, 5));
second = Integer.parseInt(finishTime.substring(6));
stop = second + minute * 60 + hour * 3600;
hour = Integer.parseInt(startingTime.substring(0, 2));
minute = Integer.parseInt(startingTime.substring(3, 5));
second = Integer.parseInt(startingTime.substring(6));
start = second + minute * 60 + hour * 3600;
}
}
@Override
public void run() {
if (valid) {
while (start <= stop) {
timeLabel.setText(String.valueOf(hour) + ":" + String.valueOf(minute) + ":" + String.valueOf(second));
try {
Thread.sleep(sleepingTime);
} catch (InterruptedException e) {
System.out.println("Sleeping error in TimeConverter");
}
second++;
if (second == 60) {
minute++;
second = 0;
}
if (minute == 60) {
hour++;
minute = 0;
}
if (hour == 24) {
hour = 0;
}
start = second + minute * 60 + hour * 3600;
}
}
}
}